【SDK】安卓开发 您所在的位置:网站首页 google flutter3 【SDK】安卓开发

【SDK】安卓开发

#【SDK】安卓开发| 来源: 网络整理| 查看: 265

提示:本将系统化将分享快速实现uniapp原生插件开发

安卓开发--uniapp原生插件开发(无三方库) 前言 一、创建模块 (安卓端) 1、右击app主项目新建Module 2、填写Module信息 二、导入依赖 (安卓端) 1.引入app主项目依赖 2.引入Module依赖 3.制作插件内容 三.添加混淆与打包插件 (安卓端) 1.添加混淆 2.打包成aar 四、插件配置 1、创建插件文件包 五、uniapp使用插件 (UNIAPP端) 1、导入插件 2、打包插件进基座 2、uniapp调用 总结

前言

提示:将安卓原生的功能制作成uniapp可以调用的原生插件:

大家好,本文将以最简单的方式介绍uniapp安卓原生插件制作。博主在初次制作插件时遇到许多坑,可谓是绞尽脑汁。 故编写文章,分享一段极其简练的uniapp原生插件的制作流程,同时将容易遇到的坑写进去,期待大家可以在收藏本文后⭐,每次都可以快速制作原生插件。

提示:大家可以配合uniapp官网的文章同步去研究制作插件uniapp官网原生插件开发教程

一、创建模块 (安卓端) 1、右击app主项目新建Module

 注意:一定要右击app去新建module,否则可能无法使用

2、填写Module信息

①左边的Templates选择Android Library. ②右边的Module name是module的名称,其他信息可以不用修改(Minimum SDK 可以根据需要更改为合适版本) ③点击finish进行创建

注意:要规范Module的命名,避免后期修改带来的麻烦

二、导入依赖 (安卓端) 1.引入app主项目依赖

①到uniapp官网下载demo提取app主项目libs中四个aar文件。uniapp安卓离线打包SDK项目工程注意:记住是UniPlugin-Hello-As项目中的aar文件

②将官方demo中的四个aar文件导入到自己app主项目的libs文件夹中提示:注意在uniapp官网的demo中找到以下四个文件:

在这里插入图片描述

③将以下依赖配置覆盖进build.gradle(app)文件中的dependencies代码块中()提示:注意是app的build.gradle文件:

dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.aar']) implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.appcompat:appcompat:1.0.0' /*uniapp所需库-----------------------开始*/ implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation 'com.facebook.fresco:fresco:1.13.0' implementation "com.facebook.fresco:animated-gif:1.13.0" /*uniapp所需库-----------------------结束*/ // 基座需要,必须添加 implementation 'com.github.bumptech.glide:glide:4.9.0' implementation 'com.alibaba:fastjson:1.1.46.android' // 添加uni-app插件 implementation 'com.google.android.material:material:1.3.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' implementation project(":ScanQrModule") //将新建module引入主app项目 } 2.引入Module依赖

④将以下配置代码覆盖进插件的build.gradle("刚刚新建的module名")文件的dependencies代码块中()提示:注意是Module的build.gradle文件:

在这里插入图片描述

//uniapp依赖 implementation fileTree(dir: 'libs', include: ['*.jar']) //必须添加的依赖 compileOnly 'com.android.support:recyclerview-v7:28.0.0' compileOnly 'com.android.support:support-v4:28.0.0' compileOnly 'com.android.support:appcompat-v7:28.0.0' compileOnly 'com.alibaba:fastjson:1.1.46.android' //uniapp依赖 compileOnly fileTree(include: ['uniapp-v8-release.aar'], dir: '../app/libs') 3.制作插件内容

①在Module包名下新建java文件,建议class名与Module名一致

在这里插入图片描述

②将类继承至UniModule。在调用的方法上写上@UniJSMethod。方法必须是public。数据可以通过callback回调到uniapp。

提示:这里非常重要,建议仔细观看。

在这里插入图片描述

三.添加混淆与打包插件 (安卓端) 1.添加混淆

①在Module的proguard-rules.pro文件下添加混淆配置注意是插件的proguard-rules.pro文件

### uniapp插件混淆配置文件 -keep public class * extends io.dcloud.weex.AppHookProxy{*;} -keep public class * extends io.dcloud.feature.uniapp.UniAppHookProxy{*;} -keep public class * extends io.dcloud.feature.uniapp.common.UniModule{*;} -keep public class * extends io.dcloud.feature.uniapp.ui.component.UniComponent{*;} 2.打包成aar

①在项目界面的右侧点击 Gradle > “Module” > other > assembleRelease。即可将本Module制作成aar文件注意是刚新建的module的other文件夹 ②在项目左侧,点击刚新建的Module(“ScanQrModule”) > build > outputs > aar > 插件名.aar。最终这个aar文件就是咱们需要的插件,这个aar文件同时还可以直接放到安卓原生开发中进行使用。注意是刚新建的module的aar文件夹 至此,安卓端的开发就完成啦!

四、插件配置 1、创建插件文件包

在这里插入图片描述 ① 在桌面新建一个文件夹命名为刚刚新建的Module的名称(插件的id) ② 文件夹一级目录下,新建文件夹android,新建配置文件package.json(名字不能改),以下是package.json文件示例

{ "name": "ScanQrModule", //插件的名称,建议与module名称一致 "id": "ScanQrModule", //插件的id,建议与module名称一致 "version": "0.0.1", "description": "", "_dp_type":"nativeplugin", "_dp_nativeplugin":{ "android": { "plugins": [ { "type": "module", //插件的类型,目前是module版 "name": "ScanQrModule", //module的名称 "class": "cn.kk.scanqrmodule.ScanQrModule" //module包名.类名(包名和class类名两部分) } ], "integrateType": "aar", "minSdkVersion" : 21, } } }

③在三级目录中,将打包出来的aar文件放入到android文件夹下

至此,插件就配置好了

五、uniapp使用插件 (UNIAPP端) 1、导入插件

在这里插入图片描述

①在uniapp项目左侧找到nativeplugins文件夹(没有就创建一个),如何将刚刚在桌面创建的插件包导入到该文件夹下 ②在uniapp项目manifest.json文件中,选择刚导入的插件

2、打包插件进基座

①制作自定义基座。在uniapp项目主页点击 运行 > 制作自定义调试基座 >进入制作基座界面。选择公共测试证书进行打包在这里插入图片描述

2、uniapp调用

① 利用 var testModule = uni.requireNativePlugin(“插件名称”) 将插件引入uniapp项目。然后就可以直接调用原生插件中的函数啦!重要提示:Module 扩展的方法可以使用 int, double, float, String, Map, List ,com.alibaba.fastjson.JSONObject 类型的参数

在这里插入图片描述

总结

如果你是小白的话,对于你来说,uniapp原生插件开发是一个复杂的过程,大家一定要静下心来仔细研究每一步的含义。如果你是大佬的话请直接阅读标题即可完成整个流程!

大家可以收藏起来慢慢看🤩



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有